/*
  入口文件
*/
const express = require('express')
const cors = require('cors')
const path = require('path')
const jwt = require('express-jwt')
const multer  = require('multer')
// 配置文件的上传位置
const upload = multer({ dest: 'uploads/' })
const loginRouter = require(path.join(__dirname, 'router/router-login.js'))
const userRouter = require(path.join(__dirname, 'router/router-user.js'))
const cateRouter = require(path.join(__dirname, 'router/router-cate.js'))
const app = express() 

// 启动静态资源服务
app.use(express.static('public'))
app.use(express.static('uploads'))

// 处理客户端请求post参数
// for parsing application/json
app.use(express.json()) 
// for parsing application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: true })) 

// 解决跨域问题
app.use(cors())

// 解析并验证token（排除请求路径以/api开头的地址）
// jwt中间件可以解析token中存储的用户信息
// req.user = {id: 2}
app.use(jwt({ secret: 'bigevent' }).unless({ path: /^\/api/ }))

// 配置路由模块
// /api/reguser
// /api/login
app.use('/api', loginRouter)
app.use('/my', userRouter)
app.use('/my', cateRouter)

app.listen(8888, () => {
  console.log('running...')
})

// app.get('/data', (req, res) => {
//   res.send('hello')
// })

// 文件上传
// app.post('/api/upload', upload.single('avatar'), function (req, res, next) {
//   // avatar这个名字其实是页面中 file 标签的name属性值 <input type="file" name="avatar" />
//   // 服务器更加这个名称获取文件的内容
//   console.log(req.file)

//   // res.send(req.file.path)
//   // res.send('<img src="http://localhost:8888/'+req.file.filename+'" alt="" />')
//   res.json({
//     status: 1,
//     message: '上传文件成功',
//     data: 'http://localhost:8888/' + req.file.filename
//   })
// })

app.get('/api/test1', (req, res) => {
  setTimeout(function () {
    res.send('tom')
  }, 1000)
})
app.get('/api/test2', (req, res) => {
  setTimeout(function () {
    res.send('jerry')
  }, 2000)
})
app.get('/api/test3', (req, res) => {
  setTimeout(function () {
    res.send('spike')
  }, 3000)
})
